document.write("<script language='javascript' src='/resources/js/views/defineTable.js'></script>");
document.write("<script language='javascript' src='/resources/js/views/commonFunction.js'></script>");

var isTrue; // 判断是否有Excel导出的数据
var width;
var isShow; // 判断表格图形是否显示

function loadYear(){
	$('#year').combobox({
		onLoadSuccess: function () {
			var nowYear = formatDate(new Date(), "yyyy");
			$("#year").combobox("setValue", nowYear-1);
		},
		onSelect: function(index, row){
			// query();
		}
	});
}

function map() {
	// 已经定义好了数据，不需要请求服务器
	$.getJSON("/resources/echarts/shandong.json", function(data) {
		// data就是json对象了，不需要在转换
		echarts.registerMap('shandong', data);
		var chart = echarts.init(document.getElementById('mainMap'));
		chart.setOption({
			series : [ {
				type : 'map',
				map : 'shandong',
				itemStyle : {
					normal : {
						borderWidth : 2,
						borderColor : '#b7f2fd',
						label : {
							show : true
						}
					},
					emphasis : {
						areaColor : '#72dfdc',
						label : {
							show : true
						}
					}
				}
			} ]
		});
		echarts.registerMap('shandong2', data);
		var chart2 = echarts.init(document.getElementById('mainMap2'));
		chart2.setOption({
			series : [ {
				type : 'map',
				map : 'shandong2',
				itemStyle : {
					normal : {
						borderWidth : 2,
						borderColor : '#b7f2fd',
						label : {
							show : true
						}
					},
					emphasis : {
						areaColor : '#72dfdc',
						label : {
							show : true
						}
					}
				}
			} ]
		});
	}, "json");
}
// 获取领域数据
function loadType() {

	var formid=$("#formid").combobox("getValue");
	$.get('/indicator/type/all.do',{'formsid':formid}, function(json) {
		if(!json.success){
			 $.messager.alert('提示',json.massage);
			 return;
		}
		json.data.unshift({
			id : -1,
			name : "全部"
		});
		$('#map_selectField').combobox({
			async : false,
			method : 'GET',
			data : json.data,
			editable : true,
			valueField : 'id',
			textField : 'name',
			onLoadSuccess : function() { // 数据加载完毕事件
				var a = $('#map_selectField').combobox('getData');
				if (a.length > 0) {
					$("#map_selectField").combobox('select', a[0].id);
				}
			},
			// 二级联动，根据领域获取相应指标数据
			onSelect : function(fld) {
				$.get('/indicator/getByType.do?type=' + fld.id+'&formsid='+formid, function(json) {
					$('#map_selectTarget').combobox({
						async : false,
						method : 'GET',
						data : json.data,
						valueField : 'id',
						textField : 'name',
						editable : true,
						onLoadSuccess : function() { // 数据加载完毕事件
							/*var a = $('#map_selectField').combobox('getData');
							if (a.length > 0) {
								$("#map_selectField").combobox('select', a[0].id);
							}*/
						}
					}).combobox('clear');
				}, "json");
			}
		});
	}, "json");
}
// 自适应
window.onresize = function() {
	if (isShow) {
		$('#mapid').css({width : $('.map_wrap').width() - $("#map_panel3").width() - 2});
	}
}
// 三级联动，根据所选指标，获取十七地市的该指标值
function query() {
	$('#map_selectTarget').combobox({
		onSelect : function(tar) {
			isTrue = true;
			isShow = true;
			$("#mapid2").css({
				display : "none"
			});
			$("#mapid").css({
				height : "700px",
				overflow : "visible"
			});
			$("#tabid").css({
				height : "700px",
				overflow : "visible"
			});
			$("#map_panel3").css({
				overflow : "visible"
			});
			$("#mapid").css({
				width : $("#mapid").width()
			});
			width = $("#tabid").width();
			var mapYear = $('#year').combobox('getValue');
			var yearLast = mapYear - 1;
			var years = yearLast + ',' + mapYear;
			var url = '/map/list.do?years=' + years + '&indicator=' + tar.id+"&formsid=1";
			var c = {
				yearLast : {
					field : (mapYear - 1) + "",
					title : (mapYear - 1) + "",
					width : 50,
					align : 'center',
					sortable : 'true',
					formatter : function(value, row, index) {
						if (isEmpty(value)) {
							return 0;
						} else if (value.indexOf('_') != -1) {
							return value.split('_')[2];
						}
						return value;
					}
				},
				yearSelect : {
					title : mapYear,
					field : mapYear,
					width : 50,
					align : 'center',
					sortable : 'true',
					formatter : function(value, row, index) {
						if (value.indexOf('_') != -1) {
							value = value.split('_')[2];
						}
						return getValueByVal(value);
					}
				}
			};

			var reportShowColumns = [
				defineTableReportAllColumns["aname"],
				defineTableReportAllColumns["iname"],
				c["yearLast"],
				c["yearSelect"]
			];

			$.get(url, function(json) {
				var code = json.code;
				if (code != 200) {
					$('#map_tt').datagrid({
						data : []
					});
					$("#view_containerzhuzi2").height("0px");
					$("#view_containerzhuzi2").width("0px");
					$("#mainMap").height("0px");
					$("#mainMap").width("0px");
					return;
				}
				var datas = json.data.results;
				$('#map_tt').datagrid(
				{
					width : '100%',
					height : '700px',
					columns : [ reportShowColumns ],
					fitColumns : true,
					scrollbarSize : 0, // 去掉滚动条
					rownumbers : true,
					singleSelect : true,
					striped : true,
					sortable : true,
					sortName : mapYear,// 排序
					multiSort : true, // 定义是否允许多列排序
					remoteSort : false,// 表示前端排序不请求服务器
					sortOrder : 'asc',
					data : datas
				});

				// 获取各地市指标占比分析图数据start
				var aname = [];
				for (var i = 0; i < datas.length; i++) {
					aname.push(datas[i].aname)
				}
				var filed = $('#map_selectField').combobox("getText"); // 领域
				var target = $('#map_selectTarget').combobox("getText"); // 指标
				var unit = datas[0].unit;
				if (target == '全部') {
					target = '全部';
				}
				// 获取各地市指标占比分析图数据end
				// 定义值域范围
				var values = [];
				var aav = [];
				var aav1 = []; // 上一年数组
				var aav2 = []; // 同期比较数组
				console.info(datas.length);
				for (var i = 0; i < datas.length; i++) {
					var a = {
						name : datas[i].aname,
						value : datas[i][mapYear].split('_')[2]
					};
					values.push(a);
					aav.push(datas[i][mapYear].split('_')[2]);
					aav1.push(datas[i][yearLast].split('_')[2]);
				}
				for (var a = 0; a < aav.length; a++) {
					if (isNaN(aav1[a])
							|| aav1[a] == 0) {
						aav2.push(0);
					} else {
						aav2.push((((aav[a] - aav1[a]) / aav1[a]) * 100).toFixed(2)); // 同期比较
					}
				}
				var radio = {
					field : 'Rnum',
					title : '同期比较(%)',
					width : 90,
					align : 'center',
					sortable : 'true',
					formatter : function(value, row, index) {
						return value;
					}
				};
				reportShowColumns.push(radio);
				for (var i = 0; i < datas.length; i++) {
					datas[i]['Rnum'] = aav2[i]
				}
				$('#map_tt').datagrid({
					columns : [ reportShowColumns ],
					data : datas
				});
				$("#mainMap").height("700px");
				$("#mainMap").width("100%");
				showMap(values, aav, unit);
				showImage(values, aname, filed, target); // 加载各地市指标占比分析图
			}, 'json');
		}
	});
}

// 地图
function showMap(values, aav, unit) {
	var maxNum = Math.max.apply(null, aav);
	var minNum = Math.min.apply(null, aav);
	var dValue = maxNum - minNum;

	$('#map_colorBox').show();
	$('#map_tips').show();
	$('#map_tips').mouseenter(function() {
		$('#map_tipsContent').show();
	});
	$('#map_tips').mouseout(function() {
		$('#map_tipsContent').hide();
	});
	// 根据十七地市数据，重新加载数据地图
	var chart = echarts.init(document.getElementById('mainMap'));
	chart.setOption({
		title : {
			text : '计量单位：' + unit,
			x : 'right',
			y : '650',
			textStyle : {
				fontSize : 13
			}
		},
		toolbox : {
			show : true,
			orient : 'vertical',
			y : 'center',
			itemSize : 30,
			itemGap : 20,
			right : '20',
			feature : {
				restore : {
					show : true,
					title : '还原'
				},
				saveAsImage : {
					show : true,
					title : '保存为图片',
					type : 'png',
					lang : [ '点击保存' ]
				}
			}
		},
		tooltip : {
			trigger : 'item',
			formatter : '{c}'
		},
		dataRange : {
			padding : [ 0, 0, 10, 10 ],
			splitList : [ {
				start : (4 * dValue / 5 + minNum),
				end : maxNum
			}, {
				start : (3 * dValue / 5 + minNum),
				end : (4 * dValue / 5 + minNum)
			}, {
				start : (2 * dValue / 5 + minNum),
				end : (3 * dValue / 5 + minNum)
			}, {
				start : (dValue / 5 + minNum),
				end : (2 * dValue / 5 + minNum)
			}, {
				start : minNum,
				end : (dValue / 5 + minNum)
			}, ],
			color : [ '#009966', '#99CC33', '#FFCC33', '#FF9933', '#FF6600' ]
		},
		series : [ {
			type : 'map',
			map : 'shandong',
			mapType : '山东',
			itemStyle : {
				normal : {
					borderWidth : 2,
					borderColor : '#b7f2fd',
					label : {
						show : true,
						position : 'right'
					}
				}
			},
			roam : true,
			scaleLimit : {
				min : 0.8,
				max : 1.5
			},
			data : values
		} ]
	});
	// 用户自定义选择颜色，传选中颜色值至值域
	$('#map_colorPicker').mouseup(function() {
		var rgbColor = $('#map_colorPicker').ClassyColor().toString();
		chart.setOption({
			dataRange : {
				color : [ rgbColor, '#edebeb' ]
			}
		})
	});
}

// 各地市指标占比分析图start
function showImage(values, aname, filed, target) {
	$("#view_containerzhuzi2").height("700px");
	$("#view_containerzhuzi2").width("490px");
	var myChart = echarts.init(document.getElementById('view_containerzhuzi2'),'macarons');

	// 指定图表的配置项和数据
	var option2 = {
		title : {
			text : target,
		},
		tooltip : {
			trigger : 'axis'
		},
		toolbox : {
			show : true,
			feature : {
				mark : {
					show : true
				},
				saveAsImage : {
					show : true
				}
			}
		},
		grid : {
			x : 100,
		},
		calculable : true,
		xAxis : [ {
			type : 'value',
			boundaryGap : [ 0, 0.01 ]
		} ],
		yAxis : [ {
			type : 'category',
			data : aname
		} ],
		series : [ {
			name : '比例',
			type : 'bar',
			itemStyle : {
				normal : {
					label : {
						show : true,
						position : 'right'
					}
				}
			},
			data : values
		} ],
		color : [ '#71e9f4' ]
	};
	myChart.setOption(option2, true);
}
//各地市指标占比分析图end

$(function() {
	loadYear();
	map();
	loadType();
	query();
});
//导出Excel文件
function Save_Excel() {
	//getExcelXML有一个JSON对象的配置，配置项看了下只有title配置，为excel文档的标题
	if (isTrue) {
		var grid = $("#map_tt");
		var rows = grid.datagrid("getRows"); //获得表格行数据
		var name = '数据地图';
		var colums_all = grid.datagrid("options").columns; //获得表格的所有列不包括冻结列
		var obj = $.ExportExcelDlg({
			HeadInfo : colums_all, //表头栏
			RowInfo : rows, //数据航
			FooterInfo : grid.datagrid("getFooterRows"),
			RowStart : 2, //导出行位置
			ColumStart : 2, //导出列位置
			SheetName : name,
			MainTitle : {
				Displayname : name,
				Alignment : 'Center'
			},
			SaveName : name,
			Swf : 'ExportExcel.swf'
		});
		obj.ExportExcelDlg('open');
	} else {
		$.messager.alert('提示', '请先选择数据，再进行导出！');
	}
}
